38
How do I organize vertically the elements

local oSwimLane,var_Element,var_Element1,var_Element2,var_Element3,var_Elements,var_Links

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
var_Elements = oSwimLane.Elements
	// var_Elements.Add("Element A").ID = "A"
	var_Element = var_Elements.Add("Element A")
	with (oSwimLane)
		TemplateDef = [dim var_Element]
		TemplateDef = var_Element
		Template = [var_Element.ID = "A"]
	endwith
	// var_Elements.Add("Element B").ID = "B"
	var_Element1 = var_Elements.Add("Element B")
	with (oSwimLane)
		TemplateDef = [dim var_Element1]
		TemplateDef = var_Element1
		Template = [var_Element1.ID = "B"]
	endwith
	// var_Elements.Add("Element C").ID = "C"
	var_Element2 = var_Elements.Add("Element C")
	with (oSwimLane)
		TemplateDef = [dim var_Element2]
		TemplateDef = var_Element2
		Template = [var_Element2.ID = "C"]
	endwith
	// var_Elements.Add("Element D").ID = "D"
	var_Element3 = var_Elements.Add("Element D")
	with (oSwimLane)
		TemplateDef = [dim var_Element3]
		TemplateDef = var_Element3
		Template = [var_Element3.ID = "D"]
	endwith
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.Item("A"),oSwimLane.Elements.Item("B"))
	var_Links.Add(oSwimLane.Elements.Item("A"),oSwimLane.Elements.Item("C"))
	var_Links.Add(oSwimLane.Elements.Item("B"),oSwimLane.Elements.Item("D"))
	var_Links.Add(oSwimLane.Elements.Item("B"),oSwimLane.Elements.Item("C"))
oSwimLane.ShowLinksType = 2
oSwimLane.Template = [DefArrange(0) = 1] // oSwimLane.DefArrange(0) = 1
oSwimLane.Arrange()

37
How can I add programatically a link

local oSwimLane,var_Elements,var_Links

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",96,24)
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.Item(1),oSwimLane.Elements.Item(2))

36
How do I get the link from the cursor
/*
with (this.EXSWIMLANEACTIVEXCONTROL1.nativeObject)
	MouseMove = class::nativeObject_MouseMove
endwith
*/
// Occurs when the user moves the mouse.
function nativeObject_MouseMove(Button,Shift,X,Y)
	local l
	oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
	l = oSwimLane.LinkFromPoint(-1,-1)
	? Str(l) 
return

local oSwimLane,var_Elements,var_Links

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",96,24)
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.Item(1),oSwimLane.Elements.Item(2))

35
Is there a way to create a link which has the same start and end element

local oSwimLane,var_Elements,var_Links

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element")
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.Item(1),oSwimLane.Elements.Item(1))

34
How can I show the pool's caption not-rotated or mirrored

local oSwimLane,var_Lanes,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
oSwimLane.AllowDesignHeader = 4
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	var_Pool.HeaderCaptionSupportRotate = false
	// var_Pool.HeaderSize(0) = 48
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(0) = 48]
	endwith
	// var_Pool.HeaderSize(2) = 48
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(2) = 48]
	endwith
	// var_Pool.Lane(0).Children.Count = 3
	var_Lanes = var_Pool.Lane(0).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes]
		TemplateDef = var_Lanes
		Template = [var_Lanes.Count = 3]
	endwith
oSwimLane.EndUpdate()

33
How can I prevent creating sub-lanes or sub-phases

local oSwimLane,var_Lanes,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
oSwimLane.AllowDesignHeader = 4
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	// var_Pool.HeaderSize(0) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(0) = 32]
	endwith
	// var_Pool.HeaderSize(2) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(2) = 32]
	endwith
	// var_Pool.Lane(0).Children.Count = 3
	var_Lanes = var_Pool.Lane(0).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes]
		TemplateDef = var_Lanes
		Template = [var_Lanes.Count = 3]
	endwith
oSwimLane.EndUpdate()

32
How do I show a complete frame/border around the header

local oSwimLane,var_Lanes,var_Pattern,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	// var_Pool.HeaderSize(1) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(1) = 32]
	endwith
	// var_Pool.HeaderSize(3) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(3) = 32]
	endwith
	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		// var_Lanes.Item(1).Header.Pattern.Type = 768
		var_Pattern = var_Lanes.Item(1).Header.Pattern
		with (oSwimLane)
			TemplateDef = [dim var_Pattern]
			TemplateDef = var_Pattern
			Template = [var_Pattern.Type = 768]
		endwith
oSwimLane.EndUpdate()

31
How do I show a complete frame/border around the lane

local oSwimLane,var_Lanes,var_Pattern,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	// var_Pool.HeaderSize(1) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(1) = 32]
	endwith
	// var_Pool.HeaderSize(3) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(3) = 32]
	endwith
	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		// var_Lanes.Item(1).Pattern.Type = 768
		var_Pattern = var_Lanes.Item(1).Pattern
		with (oSwimLane)
			TemplateDef = [dim var_Pattern]
			TemplateDef = var_Pattern
			Template = [var_Pattern.Type = 768]
		endwith
oSwimLane.EndUpdate()

30
How can I define sub-lanes

local oSwimLane,var_Lanes,var_Lanes1,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,250)
	// var_Pool.HeaderSize(1) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(1) = 32]
	endwith
	// var_Pool.HeaderSize(3) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(3) = 32]
	endwith
	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		// var_Lanes.Item(1).Children.Count = 2
		var_Lanes1 = var_Lanes.Item(1).Children
		with (oSwimLane)
			TemplateDef = [dim var_Lanes1]
			TemplateDef = var_Lanes1
			Template = [var_Lanes1.Count = 2]
		endwith
oSwimLane.EndUpdate()

29
How can I add default lanes when the user creates a new pool
/*
with (this.EXSWIMLANEACTIVEXCONTROL1.nativeObject)
	AddPool = class::nativeObject_AddPool
endwith
*/
// A new pool has been added to the surface.
function nativeObject_AddPool(Pool)
	/* Pool.HeaderSize(1) = 24 */
	/* Pool.HeaderVisible(0) = False */
	/* Pool.HeaderVisible(1) = True */
	/* Pool.HeaderVisible(2) = False */
	/* Pool.HeaderVisible(3) = False */
	/* Pool.Lane(1).Children.Count = 2 */
	oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
return

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
oSwimLane.Pools.Add(-100,-100,250,250)
oSwimLane.EndUpdate()

28
How do I prevent showing headers when the user creates new pools

/*
with (this.EXSWIMLANEACTIVEXCONTROL1.nativeObject)
	AddPool = class::nativeObject_AddPool
endwith
*/
// A new pool has been added to the surface.
function nativeObject_AddPool(Pool)
	oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
return

local oSwimLane,var_Lanes

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
// oSwimLane.Pools.Add(-100,-100,250,250).Lane(0).Children.Count = 3
var_Lanes = oSwimLane.Pools.Add(-100,-100,250,250).Lane(0).Children
with (oSwimLane)
	TemplateDef = [dim var_Lanes]
	TemplateDef = var_Lanes
	Template = [var_Lanes.Count = 3]
endwith
oSwimLane.EndUpdate()

27
How can I display icons on headers

local oSwimLane,var_HeaderLane,var_HeaderLane1,var_HeaderLane2,var_Lanes,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
oSwimLane.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Pool = oSwimLane.Pools.Add(-100,-100,250,250)
	// var_Pool.HeaderVisible(0) = false
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderVisible(0) = False]
	endwith
	// var_Pool.HeaderVisible(2) = false
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderVisible(2) = False]
	endwith
	// var_Pool.HeaderVisible(3) = false
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderVisible(3) = False]
	endwith
	// var_Pool.HeaderSize(1) = 24
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(1) = 24]
	endwith
	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		// var_Lanes.Item(0).Header.Caption = "<img>1</img> A"
		var_HeaderLane = var_Lanes.Item(0).Header
		with (oSwimLane)
			TemplateDef = [dim var_HeaderLane]
			TemplateDef = var_HeaderLane
			Template = [var_HeaderLane.Caption = "<img>1</img> A"]
		endwith
		// var_Lanes.Item(1).Header.Caption = "<img>2</img> B"
		var_HeaderLane1 = var_Lanes.Item(1).Header
		with (oSwimLane)
			TemplateDef = [dim var_HeaderLane1]
			TemplateDef = var_HeaderLane1
			Template = [var_HeaderLane1.Caption = "<img>2</img> B"]
		endwith
		// var_Lanes.Item(2).Header.Caption = "<img>3</img> C"
		var_HeaderLane2 = var_Lanes.Item(2).Header
		with (oSwimLane)
			TemplateDef = [dim var_HeaderLane2]
			TemplateDef = var_HeaderLane2
			Template = [var_HeaderLane2.Caption = "<img>3</img> C"]
		endwith
oSwimLane.EndUpdate()

26
How do I change the Lane and Phase strings being displayed on the lanes

local oSwimLane,var_HeaderLane,var_Lanes,var_Lanes1,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
oSwimLane.Template = [DefPoolHeaderCaptionFormat(True) = "<fgcolor 808080>Faza <off -4><b><font ;6>%i"] // oSwimLane.DefPoolHeaderCaptionFormat(true) = "<fgcolor 808080>Faza <off -4><b><font ;6>%i"
oSwimLane.Template = [DefPoolHeaderCaptionFormat(False) = "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"] // oSwimLane.DefPoolHeaderCaptionFormat(false) = "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"
var_Pool = oSwimLane.Pools.Add(-100,-100,250,250)
	// var_Pool.Lane(0).Children.Count = 3
	var_Lanes = var_Pool.Lane(0).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes]
		TemplateDef = var_Lanes
		Template = [var_Lanes.Count = 3]
	endwith
	// var_Pool.Lane(1).Children.Count = 3
	var_Lanes1 = var_Pool.Lane(1).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes1]
		TemplateDef = var_Lanes1
		Template = [var_Lanes1.Count = 3]
	endwith
	// var_Pool.Lane(1).Children.Item(1).Header.Caption = "<fgcolor FF0000><b>NEW"
	var_HeaderLane = var_Pool.Lane(1).Children.Item(1).Header
	with (oSwimLane)
		TemplateDef = [dim var_HeaderLane]
		TemplateDef = var_HeaderLane
		Template = [var_HeaderLane.Caption = "<fgcolor FF0000><b>NEW"]
	endwith
oSwimLane.EndUpdate()

25
How can I enlarge the node while AutoSize property is True (method 2)

local oSwimLane,var_Element

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [Background(90) = 16777215] // oSwimLane.Background(90) = 0xffffff
var_Element = oSwimLane.Elements.Add("Element",0,0).Copy()
	var_Element.Caption = "Enlarged Element"
	var_Element.InflateSize = 16

24
How can I enlarge the node while AutoSize property is True (method 1)

local oSwimLane,var_Element

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [Background(90) = 16777215] // oSwimLane.Background(90) = 0xffffff
var_Element = oSwimLane.Elements.Add("Element",0,0).Copy()
	var_Element.Caption = "Enlarged Element"
	// var_Element.Padding(-1) = 16
	with (oSwimLane)
		TemplateDef = [dim var_Element]
		TemplateDef = var_Element
		Template = [var_Element.Padding(-1) = 16]
	endwith

23
How can I get the lane of the element

local lane,oSwimLane,var_Element,var_Lanes

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
// oSwimLane.Pools.Add(-150,-150,500,250).Lane(0).Children.Count = 3
var_Lanes = oSwimLane.Pools.Add(-150,-150,500,250).Lane(0).Children
with (oSwimLane)
	TemplateDef = [dim var_Lanes]
	TemplateDef = var_Lanes
	Template = [var_Lanes.Count = 3]
endwith
var_Element = oSwimLane.Elements.Add("Element")
	var_Element.CenterOnLane(false)
	lane = var_Element.LaneID(false)
	? oSwimLane.LaneByID(lane).Header.Caption 
oSwimLane.EndUpdate()

22
How can I define a different shape for elements

/*
with (this.EXSWIMLANEACTIVEXCONTROL1.nativeObject)
	AddElement = class::nativeObject_AddElement
endwith
*/
// A new element has been added to the surface.
function nativeObject_AddElement(Element)
	oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
return

local oSwimLane,var_Appearance,var_Element,var_Element1,var_Element2,var_Element3,var_Element4,var_Element5,var_Element6,var_Element7,var_Element8,var_Elements

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAChABAQDg6AADACAxRDQNABQKAAzQFAYahuHKGAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQwDiAUIjIK8IhkGIcZAGIBJCjWGodQLOEgwHIERQjEyUJAGGYqEjaO41SpAdI0PCxUScACnDQiegJRgmQ4cTJSchSAKENx1JaeYReewwAqNd5TRwNIiydZUIhqGC1YRte4ZWiCWoJVzSVDLfbgAT4X60IIlCi5Mi6MIgDZJFDUNLUdRBMKNJ7qagaWoWOaQRbmAQQTRYLQ/TiEXZDQRAAyLJIWVRQWTAAKVbw1LiEcznGCcejzIIDaZpOh4DplWzTOgALjta4IRpvNwAbIAF4gBqsLyXXLcdQyORMiwbxZgSDhgnQbJFC6F5JhECA8CADwIgMeQnmoQJlh0eAfGcXYZjwccOHiWx/moAJ6jed4DC2dJnnmQRxBcKABBoWAcHULZLHyV4mmGOx0FmdpZAMAgQhEQBpBiRxBlQcgZFUdAMEYAxQDECBNgaUYglkCQKBGZANk0QgBgQXAQgcGI0FwJAHA6WI+DGDAjCiVg0g2Yw4mYNg7E0eJ1H+DpkAiYhBg6JApBYRMvDkJhGhKJIImEA4QledZ8H+FJlEEQhWBAJa8loRoCgkdhYBAExZHQKIXmUYRCFQI5mgWfZ4hMJpJC4boTGcCY0m0QJVBAIh2EIZZ5H4VIVAqeZ1H8M5oAmSg7g8TR1n4fQrmUQZCgqF5eEmYhYBgKQJiCD" ;
 +"4PmaegKhWJZnAQDZkhqaYKFocYnGadZ8h+KJoiGQhfEIURAmKEAYAgeo1H8OZrAoeoyhGKYngaHInmuCpOjmKAkHMHo+iiSZxmKQoXkGCwWigRQlnqLh7jKSh7DYUYzm0CgAk+DIrFCAo3i6LYKnKWYuk6Wp4keKIqDsLh7BYLhJmaZo5mcYAijAOZtFsXpajubZLG6co8CSShtnYeJrGeVpzjwbxLnafI/mcK5ZnmPgtGuap+j6cIMB8CocDAK43AaQAwjwJwQkSaZsDcBI7jETBHBqRhxkibwWkCMQsgcG5Ii2TB+nkN5yEyJwjkqcJMh8DpKDKTIrB2TBmnyGwFkwMw8mcMpOmQbJbBiTwziyUxBDsc5sD8QJRnQKprEWTg0g0DxNlKMpsF8RpSHUTQ7BuUp0n0VxZi4MxrDSJ40DYDYHGKWJ2E2FxmyADYnGqMRBgeYh0FOLh9kccpcncJsVw7RdjvA2M4eovRmCSFkMwQIoAQEBA")
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAChABAIDg6AADACAxRDQNABQKAAzQFAYaBmG6GAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQ1DAAUIjKLMIhmGAYJAGIBJCjWGodQLOEgwHIERQjEyUpIyVAkYw5HqNaQjICoJoSOwAU47IaCIAFJSpCygKKgSjhRpoAAyU5IUgVPC4XSbD6zYDqapaTheEQyDSJNr3DCMUTlFYYLrmaQKMhqZJhWjbFSWXUpJ4pSrLMIyfTwZRJGzIK7jabLIjaP6GUDhVaYbRUL46CiEb5AAJsVpCCZrYRJOYVdQeDYbQCNLDhHQIDqaA6kZRAdQ2bpMBznPSvbovDgLWhGYqhbLCNibRC+d4HNrCYIlCjpMw3CYGIOHOMRsm0OxFjSZppneHQNFcSwRAOaprjqY4dgYe4VgGWwADucRuHYCpdByYROH8AAOC8D4NgEXwYBWEZyGAWoHg2MRCECBAkFAGhGDGUB1ByBhQkUIAPgCRAMEIExhIuNhCEKBAlnAcwQgAYQXAIIRWEUFwJAGQ42CiCoihiLgugsYwDjSZ4MkICJWCaDZjgiZg6EIQQInSV4PmKeIyEKEBkBQDhEgwZBzjSd4SlEQJgk+E5khkRhIhSZA5FIUoVGWCQkl+FpkliTJnhXSYaFaGJOlEIhmC2ZoJgIZIaiWGYuG62IpDyT4TGSM5eGyCpmCnPIcCeQg+H6HZmnoAh6iAaBDjSL4hkUCgmgKHhlHmeIPh8BwKAqEohGkO" ;
 +"gOHCI4pAmMoMhUKByj6CQUCkWoGhSKJpGkJoQiOJR6G4cYTmcSQuiKKRqEqPovhmBIJiCN4YEACQGFsN5lliToyiwbAKkKQoSGcWQ2HKERrhiJJvjLUR8leL5sDsBpQiUZZpDaO4eAACZWh+LYtDsSpejQbmJnIEAuEsLJvECRgLiSH46m2W4Gl+OxpFqWo0ECSR7lQaI9m8C4+nqO4uAIHp+B4MAJmcAAeC+YgenmPwwHwHInkKRYMDaWIQGmeh3AmPpxDsCJHkWbhBAIdZDmMGZXBmRZMHwVwikUIwam0MAMC4awiEmOYyHsXwkkIMp5jMLBMDKaRiiqEBsmkNwpkwc5MyiHRrEKfxCiobIaFsQgvmsTBvD2SJuAwNBYkKSh6GsRYbDUDQ7EyVZmEwDwFiKdQ6BQf5XnYDRjD6IIujIfppBgKRcl6BZZnYXYLBWLYpn0KpglqLAtAIZoOneBsZw9RJjnQ+AYQAgCAg=")
	var_Appearance.Add(3,"gBFLBCJwBAEHhEJAAChABQsMACAADACAxRDQNABQKAAzQFAYawLBgABhGUZoJhUAIIRZGMIjFDcEwxC6NIpAWCYQgUNQCQiNAzxAKQchhD4ZAIkGY4ZhyA42SBAcbyDCEShoGqPRhmCg5UjmM4oQLSFDULC0fSBBIYaSGEY5QoqIYfArGQYQTRUPyUdoOBIACwLChWLA1CTZdowSKoYTXBq3IgqerIapmSYaV7YNh3VY1IR/JSVJYlaYJDoyNI4ThHc5xVLtfSfAiiJrxOKcTAAFJ0QKFUbRUz+OgBTpvaZxagaSpSG5WRpWEI5PAdN4zTa7YDsS67FiSG5oWpEFq2eAGdzlVLMMqhG5gAxqNKzbLfMCXfJIbyrBIcYLoXItCqFYskMTwxlgAY+haFZRlQZQ4HwHR3AoMx5jEch2lMfZGl8eY+jYXBvBsAAHFeRQDmuRR8nsSI2CoEgIEIRQBiQYwdAcUZIGUUIQhGGAGECRAhDYChGFERAMCgQheEcGQgHkEAwkICx2BCFoAj+B5iAiBgigiYhIgid4JkIQBwm2ChijiKgsguYpokYLYMmKQIiDYDgjgEAg6g6Y5InYPoPmOIAiEKEJFgkFIvhGYwIlIMoSTmAhOGgJJJC4UoSiUSIcncKZlp8WoOAOAxeF6FBlEkNhPGcZgJhYU4ZiMMweGoDAmkGfhuhWJoJDgIIUCYeZWGGHYkhkWhuB+ZYhEIcIUmcKZSHeIJmgoFgyCeaIBgKCoYCgGYSHiI5oEoQ" ;
 +"gsiKBgKCCH4SOAfoGiQaZKPmJ5jGCIJniiZgpk6DonGkKomgOHpnjqFoCiaawKioSYXg0eoGi6KZrBqIo6hgEIal6GosiwCpuDIBgsEqDJniYa4bVuFYkDqepKjCLQJiiR4XCyawGk+JpGgsZIXjabRbEKV4disSYwDCH5OlsIpWjmaA5HKUomCYOp+l6OgkhoUoWiMLpbH6bw7G0KRynOHYuGuXobhWB4MAaaoaimO52naB4hnkYInhERYLBAGAhnECw+H2BwhkmSg7kMMIqHyb49hAECAg=")
	var_Appearance.Add(4,"gBFLBCJwBAEHhEJAAChABOIDg6AADACAxRDQNABQKAAzQFAYaBqGCGAAGEZRSgmFgAQhFcZQTCsBw7DCEYxjOAwFgmEQxDIOIBQSKYcwiGQaRrkIYgEiONoaR7HchSFIcIxPFKRBhkKYocjyG5GRoBcIyXAcRSYAB2Q4ESoKShePw5UDTcCzHR8RxEDKNRLpOQbDgOUZTWbVUaDKIsXzZCKHbZhG4YRp6CZKRpYEB1bYtKTRKqLKrpeTbOoSHolTbiIATTYlG4THyEZQrDIaDjOSIXZaGFzwSDWGgBJ60bRwHIaAxGWoHRxfEZVfBONQHMSBc5xa64JyHAImWrcUbWfaYYZ0AC6MRkK8cXABPQANixKZsCizE4DDbTYzjRheC2F4nnEOJRG0BRXEWOICEocByiyCJTiQOJVGYIQ8gofpDgsG5uF+ah6D2Xp+GGP5gkCfwRHofwOnuSB2heVpZnIUZQhAIQJBQBoRgwdAdEcIYVEIQhGGAMQDBCBJYEUGgNhCEMcHsXIkCIAAMIILQWAkAZDjYJIJiIWIeCqCRMHiNI/guYwIkYMoMmMSJWDaDZjgiTIzg6Yo4iIPoPGIdAmECChiFKXhGAQJIAmISgQCSSQ2E6E5lAkRhShSZRJFQOoVkCaRkAqFpQhIPhehCY54hYQoRCOYo+GaExOnmJhghqZhJjIYYbmaaJ0l+HJkiCYgtDGY5RkIegfmeSY6GOD4MnoBh1D2aBJkYbYhmcCgigaIhOloEJ3h0aATD4b" ;
 +"gWCkQoehaGAnniHhNgwKI6HaConmiSYCF4I5niGQoLDmaoAiKKoaE6eJ2H+HZnFoeohigKwqCwGItmqA4ejIHgrkIHo+iuEA4h6PGMmIHo1i0LIKk6SoMCSWwcm2LAkisAAAgmQgLFYcw3myaxmkmG4GgsdIXjebYjjaVQIC0eQFAONADguBpqjaaIKlwGIuG4GwOkWOYAAqDoljqbIrmIJ41m4O5iGYK5FAwBp0ikag7mqbI+GoCwyEyPgpBCQwOj0KRBGKFgpnAbAjXWMQ8EaeIuG6a5SHWHZxFyBoIjEbA8FQCJJmiZAmmOORwHyCwXgkbwqn8LYoDKOZNAmJpinyOzTm8aZrBWH5QhGAxCCedBMm8L5Fi+fAEFCPgvksVp0h8NQBn8RpLi7NQKBALxLHyF43EaDRPDOMoxkqXp4kYaRLlMTQIDWbQeguR5iluBxCBgNBCH6dIJnaSZjF+LQZgGQSh5DOFEa4dQsi5GILsaA8ReBuHoEYZ4ZwkDFFwJEYo2grjcHOFUAoFA7gJFqFEDYrQyilC+PwNgyRBBLH4C8FIzxiD8CeBYEgUQ9CtAiEwYgtQyDqDWPUTjBhXBrCmAcKoJQ6iGF6DEMA8BpieA4BgMQdxDg9GSOkLQgRCjhHiDMV4Ewfh3AoGULIiBujRAuJ0c4+gEi4ASOkRAfhWgjCKKEFACCAg")
	var_Appearance.Add(5,"gBFLBCJwBAEHhEJAAChABGgDg6AADACAxRDQNABQKAAzQFAYZBwGiGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJAKCQ3DTJUBjIKcIhiGsgAzAJIUaw1DqGY7nKZoRioAIoSAMM7DCKUQSLGyQZqBSCQGjsAI+OyHAiABSNJwtHygIRoKqqHg2PoiSAEUZhdRlHShKSqLQiaIRSDUJZsW5EIyjBZ8EznOqbJApOKrCgOTYaWbUdSxPTEUwTFiXJgmKRKIoiOAAY7IEgSFLsThrIKha5yDI4bxyAwXQjeYABbY0E4HQarcqzCrKGp/HYJXyAGgQHYkB5JAaQMBtGpoJrCeKQXDdVyXFwdET1BLZQA2HeUTTRVCScqnaTMZh8DgGxniKfYbngAxFkmVJAnSdougwDhRlMGZ1GEPR9HQapDGWWhyCMe4ugQDx9naYRvm6cQfAUJ47m8cofBYAZOGCHg2mETgCBCERAGkGJHEGVByBkUwUCSIgChAMQIE2BJRiQVQDAoEIWlWIxOgGBBcGyBQYlQXAkAcDpYh4KYKCKKI2CyC5ijONJvgySZ4lQWINkKCJmCWDpjkQaJPg+UA4joMYQiQI4eEYHAkgAYhKBgJJCh43JlAkEgwhSJA5E4VoVE6UQCFoL5lkkBhXhUCR5gYOQKAieYUneGZlEmJhfhqZYJFIWgQCWQp+F6GxigmHJ3BoJ4JmYMw7maKZSH6HxoAiQhvhwZ1VHYFAogmBIXiAZ55jKDIQgeChGG+G" ;
 +"5BAoVJHiWaBYkIecznoOoeiMZYCj6IoYmcGhckeCophONoKh4aZagKLYrGkEZggeLJkCmThGDmZg5m6L4nmuOoCHaGJNnsBooAAIopCAcIZEiep2kqLwpnqCIviIBQLA4dolEECZakuK4sksYhYAgLZLOsQJLHuBBIjibR7haWYfGwawhAOJpmBuGpajuJRJkYbxAmgORynCOZvgqApejcAgIG4OYUA0e5em+PhokQXhKAYKx8AsCo+FEcJDA6D5MnwLwDkTWJulQQJuDEIphC2cQsHYbJEDCYJBAOLBrDIHwekUMBIiITgpmMcRhAOKYDgyRwnkyYwMjcK4cnAfAnCmSgzkoGhnkGZ45k6SIxjMTPIFCZOZEKSBxA0Fpui2b5LFoKIqGoaY/FKUY1gmdpQjOKxbBIV4zi0DQ6nmOhmFkUophCLILEMV5YiWCZkH+W5nl2HxfiiMwQmMTZOmqLhaLsx9iUH6JAMI1hCDjECFQawhghjBG2DseoGQzhNHwDwTAMAsgTEeCUZI1Q5jFHyLodYmWxB8GsPEVIPwxhSD6Awb4dgJD2HsAQQIoAQEB")
oSwimLane.Template = [Background(90) = 16777215] // oSwimLane.Background(90) = 0xffffff
var_Elements = oSwimLane.Elements
	// var_Elements.Add("Rectangular",0,0).Shape = 0
	var_Element = var_Elements.Add("Rectangular",0,0)
	with (oSwimLane)
		TemplateDef = [dim var_Element]
		TemplateDef = var_Element
		Template = [var_Element.Shape = 0]
	endwith
	// var_Elements.Add("Round",82,0).Shape = 1
	var_Element1 = var_Elements.Add("Round",82,0)
	with (oSwimLane)
		TemplateDef = [dim var_Element1]
		TemplateDef = var_Element1
		Template = [var_Element1.Shape = 1]
	endwith
	// var_Elements.Add("Rhomb",138,0).Shape = 2
	var_Element2 = var_Elements.Add("Rhomb",138,0)
	with (oSwimLane)
		TemplateDef = [dim var_Element2]
		TemplateDef = var_Element2
		Template = [var_Element2.Shape = 2]
	endwith
	// var_Elements.Add("Circle",196,0).Shape = 3
	var_Element3 = var_Elements.Add("Circle",196,0)
	with (oSwimLane)
		TemplateDef = [dim var_Element3]
		TemplateDef = var_Element3
		Template = [var_Element3.Shape = 3]
	endwith
	var_Element4 = var_Elements.Add("EBN 1",0,36)
		var_Element4.BackColor = 0x1000000
		var_Element4.Border = -1
	var_Element5 = var_Elements.Add("EBN 2",54,36)
		var_Element5.BackColor = 0x2000000
		var_Element5.Border = -1
	var_Element6 = var_Elements.Add("EBN 3",108,36)
		var_Element6.BackColor = 0x3000000
		var_Element6.Border = -1
	var_Element7 = var_Elements.Add("EBN 4   ",160,36)
		var_Element7.BackColor = 0x4000000
		var_Element7.Border = -1
	var_Element8 = var_Elements.Add("EBN 5 ",220,36)
		var_Element8.BackColor = 0x5000000
		var_Element8.MinHeight = 64
		var_Element8.MinWidth = 64
		var_Element8.Border = -1
oSwimLane.Template = [ScrollPos(False) = -160] // oSwimLane.ScrollPos(false) = -160
oSwimLane.EndUpdate()

21
Is it possible to add an inner control on the surface

/*
with (this.EXSWIMLANEACTIVEXCONTROL1.nativeObject)
	OleEvent = class::nativeObject_OleEvent
endwith
*/
// Occurs once an inside control fires an event.
function nativeObject_OleEvent(Element,Ev)
	oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
	? Str(Ev) 
return

local oSwimLane,var_Element,var_Elements

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
var_Elements = oSwimLane.Elements
	var_Element = var_Elements.Add("activex hosting")
		var_Element.Type = 2
		var_Element.Control = "Forms.CommandButton.1"
		var_Element.Caption = "Command Button"
		var_Element.Height = 64
		var_Element.Width = 128
		var_Element.ElementFormat = "14;" + ["] + "caption" + ["] + "/" + ["] + "client" + ["] + ""
		var_Element.CaptionAlign = 1

20
How can I create a copy of the element
local oSwimLane,var_Element

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [Background(90) = 16777215] // oSwimLane.Background(90) = 0xffffff
// oSwimLane.Elements.Add("Element 1",0,0).Copy().Caption = "Aka"
var_Element = oSwimLane.Elements.Add("Element 1",0,0).Copy()
with (oSwimLane)
	TemplateDef = [dim var_Element]
	TemplateDef = var_Element
	Template = [var_Element.Caption = "Aka"]
endwith

19
How can I define an opaque background for elements

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [Background(90) = 16777215] // oSwimLane.Background(90) = 0xffffff
oSwimLane.Elements.Add("Element 1",0,0)
oSwimLane.Elements.Add("Element 2",16,16)

18
How can I show a different context-menu for all elements
/*
with (this.EXSWIMLANEACTIVEXCONTROL1.nativeObject)
	ActionContextMenu = class::nativeObject_ActionContextMenu
endwith
*/
// Occurs when the user selects an item from the object's context menu.
function nativeObject_ActionContextMenu(Action,ObjectType,ObjectID,CommandID,CommandChecked,CommandCaption,CommandValue,Cancel)
	oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
	? Str(Action) 
	? Str(ObjectID) 
	? Str(CommandID) 
return

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [ContextMenu(4) = "Item 1[id=1000],Item 2[id=2000]"] // oSwimLane.ContextMenu(4) = "Item 1[id=1000],Item 2[id=2000]"
oSwimLane.Template = [Background(90) = 16777215] // oSwimLane.Background(90) = 0xffffff
oSwimLane.Elements.Add("Element 1",0,0)
oSwimLane.Elements.Add("Element 2",16,16)

17
How can I show a different context-menu for element
local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
? Str(oSwimLane.Elements.Add("Element",0,0).InvokeContextMenu("Item 1[id=1000],Item 2[id=2000]")) 

16
How can I change the design-modes being shown on the control's toolbar

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.DesignModes = "Read-Only#0,Allow Any#3,Only-Element#1,Only-Pool#2"

15
How can I change the default header's background color

local oSwimLane,var_Lanes,var_Lanes1,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	// var_Pool.Lane(0).Children.Count = 4
	var_Lanes = var_Pool.Lane(0).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes]
		TemplateDef = var_Lanes
		Template = [var_Lanes.Count = 4]
	endwith
	// var_Pool.Lane(1).Children.Count = 4
	var_Lanes1 = var_Pool.Lane(1).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes1]
		TemplateDef = var_Lanes1
		Template = [var_Lanes1.Count = 4]
	endwith
oSwimLane.Template = [Background(120) = 65280] // oSwimLane.Background(120) = 0xff00
oSwimLane.Template = [Background(124) = 49152] // oSwimLane.Background(124) = 0xc000
oSwimLane.EndUpdate()

14
How can I remove the Design item from the control's toolbar, to be locked ( no-design )

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.ToolBarFormat = "-1,100,101"
oSwimLane.DesignMode = 0

13
How can I remove/disable the Color and Display-Grid from the surface's context menu

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [ContextMenu(24) = "Delete[id=-32004](All[id=-32000][ttp=Deletes all the objects from the surface],[sep],Elements[id=-32001][ttp=Deletes all elements from the surface],Links[id=-32002][ttp=Deletes all links from the surface],Pools[id=-32003][ttp=Deletes all pools from the surface])"] // oSwimLane.ContextMenu(24) = "Delete[id=-32004](All[id=-32000][ttp=Deletes all the objects from the surface],[sep],Elements[id=-32001][ttp=Deletes all elements from the surface],Links[id=-32002][ttp=Deletes all links from the surface],Pools[id=-32003][ttp=Deletes all pools from the surface])"

12
How can I change the element's context-menu when the user right-clicks the element

/*
with (this.EXSWIMLANEACTIVEXCONTROL1.nativeObject)
	ActionContextMenu = class::nativeObject_ActionContextMenu
endwith
*/
// Occurs when the user selects an item from the object's context menu.
function nativeObject_ActionContextMenu(Action,ObjectType,ObjectID,CommandID,CommandChecked,CommandCaption,CommandValue,Cancel)
	/* ContextMenuObjectFromID(ObjectType,ObjectID).BackColor = RGB(255,255,0) */
	oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
	? Str(Action) 
	? Str(CommandCaption) 
return

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
oSwimLane.Elements.Add("element",0,0)
oSwimLane.Template = [ContextMenu(4) = "Simple,Value[edit=123],[sep],Popup(Check 1[chk],Check 2[chk=1])"] // oSwimLane.ContextMenu(4) = "Simple,Value[edit=123],[sep],Popup(Check 1[chk],Check 2[chk=1])"
oSwimLane.EndUpdate()

11
How do I prevent showing the context-menu when user right-clicks the surface
local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [ContextMenu(24) = ""] // oSwimLane.ContextMenu(24) = ""

10
How do I create parent-child (tree) lanes

local oSwimLane,var_HeaderLane,var_HeaderLane1,var_Lanes,var_Lanes1,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	// var_Pool.HeaderSize(1) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(1) = 32]
	endwith
	// var_Pool.HeaderVisible(3) = false
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderVisible(3) = False]
	endwith
	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 2
		var_Lanes1 = var_Lanes.Item(0).Children
			var_Lanes1.Count = 2
			// var_Lanes1.Item(0).Header.Caption = "Phase <b>1.1"
			var_HeaderLane = var_Lanes1.Item(0).Header
			with (oSwimLane)
				TemplateDef = [dim var_HeaderLane]
				TemplateDef = var_HeaderLane
				Template = [var_HeaderLane.Caption = "Phase <b>1.1"]
			endwith
			// var_Lanes1.Item(1).Header.Caption = "Phase <b>1.2"
			var_HeaderLane1 = var_Lanes1.Item(1).Header
			with (oSwimLane)
				TemplateDef = [dim var_HeaderLane1]
				TemplateDef = var_HeaderLane1
				Template = [var_HeaderLane1.Caption = "Phase <b>1.2"]
			endwith
oSwimLane.EndUpdate()

9
How do I create a pool with horizontal and lanes

local oSwimLane,var_Lanes,var_Lanes1,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	// var_Pool.Lane(0).Children.Count = 4
	var_Lanes = var_Pool.Lane(0).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes]
		TemplateDef = var_Lanes
		Template = [var_Lanes.Count = 4]
	endwith
	// var_Pool.Lane(1).Children.Count = 4
	var_Lanes1 = var_Pool.Lane(1).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes1]
		TemplateDef = var_Lanes1
		Template = [var_Lanes1.Count = 4]
	endwith
oSwimLane.EndUpdate()

8
How do I add programatically a pool with horizontal lanes

local oSwimLane,var_Lanes,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	// var_Pool.Lane(0).Children.Count = 4
	var_Lanes = var_Pool.Lane(0).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes]
		TemplateDef = var_Lanes
		Template = [var_Lanes.Count = 4]
	endwith
oSwimLane.EndUpdate()

7
How do I add programatically a pool with vertical lanes

local oSwimLane,var_Lanes,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	// var_Pool.Lane(1).Children.Count = 4
	var_Lanes = var_Pool.Lane(1).Children
	with (oSwimLane)
		TemplateDef = [dim var_Lanes]
		TemplateDef = var_Lanes
		Template = [var_Lanes.Count = 4]
	endwith
oSwimLane.EndUpdate()

6
How can I change the toolbar's visual appearance

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
oSwimLane.Template = [Background(148) = 16777216] // oSwimLane.Background(148) = 0x1000000
oSwimLane.Template = [Background(149) = 16777215] // oSwimLane.Background(149) = 0xffffff
oSwimLane.Template = [Background(150) = 2631720] // oSwimLane.Background(150) = 0x282828
oSwimLane.Template = [Background(153) = 23093344] // oSwimLane.Background(153) = 0x1606060
oSwimLane.Template = [Background(154) = 15790320] // oSwimLane.Background(154) = 0xf0f0f0
oSwimLane.Template = [Background(155) = 27304096] // oSwimLane.Background(155) = 0x1a0a0a0
oSwimLane.Template = [Background(156) = 16777215] // oSwimLane.Background(156) = 0xffffff

5
How can I change the toolbar's background color

local oSwimLane

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.Template = [Background(149) = 16777215] // oSwimLane.Background(149) = 0xffffff

4
How can I fit or ensure that all elements are in the control's client area
local oSwimLane,var_Element,var_Element1,var_Elements

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
var_Elements = oSwimLane.Elements
	// var_Elements.Add("Element A",-500,-500).BackColor = 0xff00
	var_Element = var_Elements.Add("Element A",-500,-500)
	with (oSwimLane)
		TemplateDef = [dim var_Element]
		TemplateDef = var_Element
		Template = [var_Element.BackColor = 65280]
	endwith
	// var_Elements.Add("Element B",500,500).BackColor = 0xff
	var_Element1 = var_Elements.Add("Element B",500,500)
	with (oSwimLane)
		TemplateDef = [dim var_Element1]
		TemplateDef = var_Element1
		Template = [var_Element1.BackColor = 255]
	endwith
	var_Elements.Add("Element C",48,24)
oSwimLane.FitToClient()

3
Context Menu - Microsoft Windows 8.1 - Ribbon Like

local oSwimLane,var_Appearance

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_background.ebn")
	var_Appearance.Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_groupt.ebn")
	var_Appearance.Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_hot.ebn")
	var_Appearance.Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_select.ebn")
	var_Appearance.Add(17,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tab.ebn")
	var_Appearance.Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tabhot.ebn")
	var_Appearance.Add(30,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio0.ebn")
	var_Appearance.Add(31,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio1.ebn")
	var_Appearance.Add(32,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check0.ebn")
	var_Appearance.Add(33,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check1.ebn")
	var_Appearance.Add(34,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttonu.ebn")
	var_Appearance.Add(35,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttond.ebn")
oSwimLane.Template = [Background(99) = 16777216] // oSwimLane.Background(99) = 0x1000000
oSwimLane.Template = [Background(64) = 33488638] // oSwimLane.Background(64) = 0x1fefefe
oSwimLane.Template = [Background(102) = 234881024] // oSwimLane.Background(102) = 0xe000000
oSwimLane.Template = [Background(148) = 16777216] // oSwimLane.Background(148) = 0x1000000
oSwimLane.Template = [Background(149) = 16777215] // oSwimLane.Background(149) = 0xffffff
oSwimLane.Template = [Background(155) = 201326592] // oSwimLane.Background(155) = 0xc000000
oSwimLane.Template = [Background(153) = 234881024] // oSwimLane.Background(153) = 0xe000000
oSwimLane.Template = [Background(110) = 201326592] // oSwimLane.Background(110) = 0xc000000
oSwimLane.Template = [Background(112) = 587202560] // oSwimLane.Background(112) = 0x23000000
oSwimLane.Template = [Background(2) = 570425344] // oSwimLane.Background(2 /*0x2 | */) = 0x22000000
oSwimLane.Template = [Background(3) = 587202560] // oSwimLane.Background(3 /*0x3 | */) = 0x23000000
oSwimLane.Template = [Background(70) = 536870912] // oSwimLane.Background(70) = 0x20000000
oSwimLane.Template = [Background(71) = 553648128] // oSwimLane.Background(71) = 0x21000000
oSwimLane.Template = [Background(73) = 503316480] // oSwimLane.Background(73) = 0x1e000000
oSwimLane.Template = [Background(74) = 520093696] // oSwimLane.Background(74) = 0x1f000000
oSwimLane.EndUpdate()

2
Context Menu - Microsoft Paint - Ribbon Like

local oSwimLane,var_Appearance

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_background.ebn")
	var_Appearance.Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupt.ebn")
	var_Appearance.Add(3,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupo.ebn")
	var_Appearance.Add(4,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_grouphot.ebn")
	var_Appearance.Add(5,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameh.ebn")
	var_Appearance.Add(6,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehs.ebn")
	var_Appearance.Add(7,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehi.ebn")
	var_Appearance.Add(8,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehe.ebn")
	var_Appearance.Add(9,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevs.ebn")
	var_Appearance.Add(10,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevi.ebn")
	var_Appearance.Add(11,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameve.ebn")
	var_Appearance.Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_select.ebn")
	var_Appearance.Add(13,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_bordert.ebn")
	var_Appearance.Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttond.ebn")
	var_Appearance.Add(15,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttonu.ebn")
	var_Appearance.Add(16,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tab.ebn")
	var_Appearance.Add(17,"CP:16 0 0 0 1")
	var_Appearance.Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabhot.ebn")
	var_Appearance.Add(19,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabselhot.ebn")
	var_Appearance.Add(20,"CP:19 0 0 0 1")
oSwimLane.Template = [Background(99) = 16777216] // oSwimLane.Background(99) = 0x1000000
oSwimLane.Template = [Background(101) = 9126421] // oSwimLane.Background(101) = 0x8b4215
oSwimLane.Template = [Background(102) = 234881024] // oSwimLane.Background(102) = 0xe000000
oSwimLane.Template = [Background(64) = 33488638] // oSwimLane.Background(64) = 0x1fefefe
oSwimLane.Template = [Background(148) = 16777216] // oSwimLane.Background(148) = 0x1000000
oSwimLane.Template = [Background(149) = 16777215] // oSwimLane.Background(149) = 0xffffff
oSwimLane.Template = [Background(155) = 218103808] // oSwimLane.Background(155) = 0xd000000
oSwimLane.Template = [Background(153) = 16777216] // oSwimLane.Background(153) = 0x1000000
oSwimLane.Template = [Background(2) = 218103808] // oSwimLane.Background(2 /*0x2 | */) = 0xd000000
oSwimLane.Template = [Background(105) = 83886080] // oSwimLane.Background(105) = 0x5000000
oSwimLane.Template = [Background(106) = 100663296] // oSwimLane.Background(106) = 0x6000000
oSwimLane.Template = [Background(107) = 117440512] // oSwimLane.Background(107) = 0x7000000
oSwimLane.Template = [Background(108) = 134217728] // oSwimLane.Background(108) = 0x8000000
oSwimLane.Template = [Background(116) = 150994944] // oSwimLane.Background(116) = 0x9000000
oSwimLane.Template = [Background(117) = 167772160] // oSwimLane.Background(117) = 0xa000000
oSwimLane.Template = [Background(118) = 184549376] // oSwimLane.Background(118) = 0xb000000
oSwimLane.Template = [Background(110) = 201326592] // oSwimLane.Background(110) = 0xc000000
oSwimLane.Template = [Background(112) = 251658240] // oSwimLane.Background(112) = 0xf000000
oSwimLane.EndUpdate()

1
Context Menu - Microsoft Office - Ribbon Like

local oSwimLane,var_Appearance

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_background.ebn")
	var_Appearance.Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupt.ebn")
	var_Appearance.Add(3,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupo.ebn")
	var_Appearance.Add(4,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_grouphot.ebn")
	var_Appearance.Add(5,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameh.ebn")
	var_Appearance.Add(6,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehs.ebn")
	var_Appearance.Add(7,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehi.ebn")
	var_Appearance.Add(8,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehe.ebn")
	var_Appearance.Add(9,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevs.ebn")
	var_Appearance.Add(10,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevi.ebn")
	var_Appearance.Add(11,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameve.ebn")
	var_Appearance.Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_select.ebn")
	var_Appearance.Add(13,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_bordert.ebn")
	var_Appearance.Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttond.ebn")
	var_Appearance.Add(15,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttonu.ebn")
	var_Appearance.Add(16,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tab.ebn")
	var_Appearance.Add(17,"CP:16 0 0 0 1")
	var_Appearance.Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabhot.ebn")
	var_Appearance.Add(19,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabselhot.ebn")
	var_Appearance.Add(20,"CP:19 0 0 0 1")
oSwimLane.Template = [Background(99) = 16777216] // oSwimLane.Background(99) = 0x1000000
oSwimLane.Template = [Background(101) = 9126421] // oSwimLane.Background(101) = 0x8b4215
oSwimLane.Template = [Background(64) = 33488638] // oSwimLane.Background(64) = 0x1fefefe
oSwimLane.Template = [Background(148) = 16777216] // oSwimLane.Background(148) = 0x1000000
oSwimLane.Template = [Background(149) = 16777215] // oSwimLane.Background(149) = 0xffffff
oSwimLane.Template = [Background(155) = 218103808] // oSwimLane.Background(155) = 0xd000000
oSwimLane.Template = [Background(153) = 16777216] // oSwimLane.Background(153) = 0x1000000
oSwimLane.Template = [Background(2) = 218103808] // oSwimLane.Background(2 /*0x2 | */) = 0xd000000
oSwimLane.Template = [Background(3) = 16777216] // oSwimLane.Background(3 /*0x3 | */) = 0x1000000
oSwimLane.Template = [Background(105) = 83886080] // oSwimLane.Background(105) = 0x5000000
oSwimLane.Template = [Background(106) = 100663296] // oSwimLane.Background(106) = 0x6000000
oSwimLane.Template = [Background(107) = 117440512] // oSwimLane.Background(107) = 0x7000000
oSwimLane.Template = [Background(108) = 134217728] // oSwimLane.Background(108) = 0x8000000
oSwimLane.Template = [Background(116) = 150994944] // oSwimLane.Background(116) = 0x9000000
oSwimLane.Template = [Background(117) = 167772160] // oSwimLane.Background(117) = 0xa000000
oSwimLane.Template = [Background(118) = 184549376] // oSwimLane.Background(118) = 0xb000000
oSwimLane.Template = [Background(110) = 201326592] // oSwimLane.Background(110) = 0xc000000
oSwimLane.Template = [Background(102) = 234881024] // oSwimLane.Background(102) = 0xe000000
oSwimLane.Template = [Background(112) = 251658240] // oSwimLane.Background(112) = 0xf000000
oSwimLane.EndUpdate()